The Scribble architecture is based on OSGi, to provide a means
of managing the individual modules, but without causing tight
coupling.
Service bundles enable implementations to be specified that
implement defined interfaces. Other services can then
request access to services that implement a particular interface.
The OSGi service container takes responsibility of managing the
services, and providing access to requesting components.
This provides flexibility for Scribble tooling in two respects:
Replaceable
The implementation of a particular Scribble interface can
easily be replaced. This enables different research or
industry groups to replace specific modules, with
alternative implementations, while still reusing other
modules.
Extensibility
Some aspects of the architecture allow for multiple implementations
of the same interface. Therefore, using OSGi, enables
additional implementations of the same interface to be
easily plugged in, without having to define any
additional configuration information.